/*******************************************************************************
* Copyright (C) 2011 Robert Munteanu <robert.munteanu@gmail.com>
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*******************************************************************************/
package com.itsolut.mantis.core;
import org.eclipse.core.runtime.IPath;
import com.google.inject.AbstractModule;
import com.google.inject.Singleton;
/**
* @author Robert Munteanu
*
*/
class MantisCorePluginModule extends AbstractModule {
private final MantisRepositoryConnector mantisRepositoryConnector;
public MantisCorePluginModule(MantisRepositoryConnector mantisRepositoryConnector) {
this.mantisRepositoryConnector = mantisRepositoryConnector;
}
@Override
protected void configure() {
bind(StatusFactory.class);
bind(MantisAttachmentHandler.class);
bind(MantisTaskDataHandler.class);
bind(IMantisClientManager.class).to(MantisClientManager.class);
bind(MantisCommentMapper.class);
bind(IPath.class).annotatedWith(RepositoryPersistencePath.class).toProvider(RepositoryPersistencePathProvider.class);
bind(MantisRepositoryConnector.class).toInstance(mantisRepositoryConnector);
bind(Tracer.class).to(EclipseTracer.class).in(Singleton.class); // we need a single tracer which is post-configured by the core plugin
}
}